Exploratory Data Analysis of Censo Escolar

The following code load the necessary packages.

library(tidyverse)
library(ggthemes)

The following code read the data from my computer. But I saved all the data on a .RData file. This file is uploaded to github so everyone can download it and check the code by yourself.

read.data <- function(year, file, variables){
  censo.escolar.year <- read_delim(file, 
                                 delim = ';',
                                 locale = locale(encoding = 'WINDOWS-1252'),
                                 escape_double = TRUE,
                                 trim_ws = TRUE,
                                 col_select = variables)}

variables <- c('NU_ANO_CENSO', 'NO_REGIAO', 'CO_REGIAO',
                                 'CO_UF', 'NO_MUNICIPIO', 'CO_ENTIDADE', 
                                 'TP_DEPENDENCIA', 'TP_LOCALIZACAO', 'TP_CATEGORIA_ESCOLA_PRIVADA',
                                 'TP_SITUACAO_FUNCIONAMENTO','QT_COMP_ALUNO',
                                  'IN_DESKTOP_ALUNO', 
                                 'QT_DESKTOP_ALUNO', 'IN_COMP_PORTATIL_ALUNO',
                                 'QT_COMP_PORTATIL_ALUNO', 'IN_TABLET_ALUNO', 
                                  'QT_COMPUTADOR', 'QT_COMP_ADMINISTRATIVO',
                                 'QT_TABLET_ALUNO', 'IN_INTERNET',
                                 'IN_INTERNET_ALUNOS', 'IN_INTERNET_APRENDIZAGEM',
                                 'IN_INTERNET_COMUNIDADE', 'IN_BANDA_LARGA', 
                                 'QT_MAT_BAS_D', 'QT_MAT_BAS_N', 'QT_MAT_BAS_EAD',
                                 'IN_FUND', 'IN_FUND_AI', 'IN_FUND_AF', 'IN_MED',
                                 'QT_MAT_FUND', 'QT_MAT_FUND_AI', 'QT_MAT_FUND_AF',
                                 'QT_MAT_MED', 'QT_MAT_EJA_MED', 'QT_MAT_FUND_INT', 
                                 'QT_MAT_FUND_AI_INT', 'QT_MAT_FUND_AF_INT', 
                                 'QT_MAT_MED_INT')

file.2022 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2022/Dados/microdados_ed_basica_2022.csv'

file.2021 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2021/Dados/microdados_ed_basica_2021.csv'

file.2020 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2020/Dados/microdados_ed_basica_2020.csv'

file.2019 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2019/Dados/microdados_ed_basica_2019.csv'
  
file.2018 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2018/Dados/microdados_ed_basica_2018.csv'
  
file.2017 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2017/Dados/microdados_ed_basica_2017.csv'
  
file.2016 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2016/Dados/microdados_ed_basica_2016.csv'
  
file.2015 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2015/Dados/microdados_ed_basica_2015.csv'
  
file.2014 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2014/Dados/microdados_ed_basica_2014.csv'
  
file.2013 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2013/Dados/microdados_ed_basica_2013.csv'
  
file.2012 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2012/Dados/microdados_ed_basica_2012.csv'
  
file.2011 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2011/Dados/microdados_ed_basica_2011.csv'
  
file.2010 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2010/Dados/microdados_ed_basica_2010.csv'
  
censo.escolar.2022 <- read.data(2022, file.2022, variables)

censo.escolar.2021 <- read.data(2021, file.2021, variables)

censo.escolar.2020 <- read.data(2020, file.2020, variables)

censo.escolar.2019 <- read.data(2019, file.2019, variables)

censo.escolar.2018 <- read.data(2018, file.2018, variables)

censo.escolar.2017 <- read.data(2017, file.2017, variables)

censo.escolar.2016 <- read.data(2016, file.2016, variables)

censo.escolar.2015 <- read.data(2015, file.2015, variables)

censo.escolar.2014 <- read.data(2014, file.2014, variables)

censo.escolar.2013 <- read.data(2013, file.2013, variables)

censo.escolar.2012 <- read.data(2012, file.2012, variables)

censo.escolar.2011 <- read.data(2011, file.2011, variables)

censo.escolar.2010 <- read.data(2010, file.2010, variables)

Now, let’s bind all this data.frame in only one data.frame called censo.escolar.

I’ve saved the data as censo_escolar.Rdata. This file is available on my repo: repo

To read the censo_escolar.Rdata, you can use the following code: > load(“paste_the_file_directory_here”)

To make data analysis easier, it is good practice to rename the variables. Let’s do it.

Before analyse the data is interesting to look at the format of all variables.

## Rows: 3,017,633
## Columns: 40
## $ Ano                                                         <dbl> 2010, 2010…
## $ Nome_região_geográfica                                      <chr> "Norte", "…
## $ Código_região_geográfica                                    <dbl> 1, 1, 1, 1…
## $ Código_UF                                                   <dbl> 11, 11, 11…
## $ Nome_Município                                              <chr> "Alta Flor…
## $ Código_Escola                                               <dbl> 11022558, …
## $ Dependência_Administrativa                                  <dbl> 2, 2, 3, 3…
## $ Localização                                                 <dbl> 2, 1, 2, 2…
## $ Categoria_escola_privada                                    <dbl> 0, 0, 0, 0…
## $ Situação_funcionamento                                      <dbl> 1, 1, 1, 1…
## $ Quantidade_computadores_uso_alunos                          <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_desktop                    <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_desktop         <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_portátil                   <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_portátil        <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_tablet                     <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_escola                              <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_uso_administrativo                  <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_tablet          <dbl> 0, 0, 0, 0…
## $ Acesso_Internet                                             <dbl> 0, 1, 0, 0…
## $ Acesso_Internet_alunos                                      <dbl> 0, 0, 0, 0…
## $ Acesso_Internet_processos_de_ensino_aprendizagem            <dbl> 0, 0, 0, 0…
## $ Acesso_Internet_Para_comunidade                             <dbl> 0, 0, 0, 0…
## $ Internet_Banda_Larga                                        <dbl> 0, 1, 0, 0…
## $ Número_Matrículas_Educação_Básica_Diurno                    <dbl> 5, 0, 0, 0…
## $ Número_Matrículas_Educação_Básica_Noturno                   <dbl> 0, 660, 0,…
## $ Número_Matrículas_Educação_Básica_Distância                 <dbl> 0, 0, 0, 0…
## $ Ensino_Fundamental_Possui_matrículas                        <dbl> 1, 0, 1, 1…
## $ Ensino_Fundamental_Anos_Iniciais_Possui_matrículas          <dbl> 1, 0, 1, 1…
## $ Ensino_Fundamental_Anos_Finais_Possui_matrículas            <dbl> 0, 0, 0, 0…
## $ Ensino_Médio_Possui_matrículas                              <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental                        <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais          <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais            <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio                              <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_EJA                          <dbl> 0, 359, 0,…
## $ Número_Matrículas_Ensino_Fundamental_integral               <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais_integral   <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_Integral                     <dbl> 0, 0, 0, 0…

Let’s change the format of variables that should be factors. In R, factors are used to work with categorical variables.

Now, it is possible to see that we have the correct format of categorical variables.

## Rows: 3,017,633
## Columns: 40
## $ Ano                                                         <dbl> 2010, 2010…
## $ Nome_região_geográfica                                      <fct> Norte, Nor…
## $ Código_região_geográfica                                    <dbl> 1, 1, 1, 1…
## $ Código_UF                                                   <dbl> 11, 11, 11…
## $ Nome_Município                                              <chr> "Alta Flor…
## $ Código_Escola                                               <dbl> 11022558, …
## $ Dependência_Administrativa                                  <fct> Estadual, …
## $ Localização                                                 <fct> Rural, Urb…
## $ Categoria_escola_privada                                    <fct> NA, NA, NA…
## $ Situação_funcionamento                                      <fct> Em_ativida…
## $ Quantidade_computadores_uso_alunos                          <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_desktop                    <fct> Não, Não, …
## $ Quantidade_computadores_em_uso_pelos_alunos_desktop         <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_portátil                   <fct> Não, Não, …
## $ Quantidade_computadores_em_uso_pelos_alunos_portátil        <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_tablet                     <fct> Não, Não, …
## $ Quantidade_computadores_escola                              <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_uso_administrativo                  <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_tablet          <dbl> 0, 0, 0, 0…
## $ Acesso_Internet                                             <fct> Não, Sim, …
## $ Acesso_Internet_alunos                                      <fct> Não, Não, …
## $ Acesso_Internet_processos_de_ensino_aprendizagem            <fct> Não, Não, …
## $ Acesso_Internet_Para_comunidade                             <fct> Não, Não, …
## $ Internet_Banda_Larga                                        <fct> Não, Sim, …
## $ Número_Matrículas_Educação_Básica_Diurno                    <dbl> 5, 0, 0, 0…
## $ Número_Matrículas_Educação_Básica_Noturno                   <dbl> 0, 660, 0,…
## $ Número_Matrículas_Educação_Básica_Distância                 <dbl> 0, 0, 0, 0…
## $ Ensino_Fundamental_Possui_matrículas                        <fct> Sim, Não, …
## $ Ensino_Fundamental_Anos_Iniciais_Possui_matrículas          <fct> Sim, Não, …
## $ Ensino_Fundamental_Anos_Finais_Possui_matrículas            <fct> Não, Não, …
## $ Ensino_Médio_Possui_matrículas                              <fct> Não, Não, …
## $ Número_Matrículas_Ensino_Fundamental                        <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais          <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais            <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio                              <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_EJA                          <dbl> 0, 359, 0,…
## $ Número_Matrículas_Ensino_Fundamental_integral               <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais_integral   <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_Integral                     <dbl> 0, 0, 0, 0…

Number of school enrollment at basic education.

After formatting the variables, let’s make some exploratory data analysis. First, let’s take a look at the number of school enrollment at basic education.

Let’s use a graph to better visualize this data.

It is possible to conclude that the number of enrollment at basic education is falling.

Now, the enrollment at basic education separated by location of school.

The graph above allows to conclude that the number of enrollments at elementary school is falling at rural areas and is growing at urban areas

The same happens to the number of enrollments at high school as we can see at the graph bellow.

#### Proportion of school enrollment with fast internet connection.

## `summarise()` has grouped output by 'Ano'. You can override using the `.groups`
## argument.

The next table shows the proportion of schools with fast internet connection.

The graph bellow shows the proportion of schools with fast internet connection by location.

## `summarise()` has grouped output by 'Ano'. You can override using the `.groups`
## argument.

Tablets vailables to students.

This dataset has information about the number of tablets available to students. Let’s explore this information.

Exploratory Data Analysis of SAEB